package baiqitun.stupro.test.mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 用于测试前清空数据库
 * @author kedaji
 */

public interface SysTestMapper {

    /**
     * 获取指定数据库schema中所有以tablePrefix作为前缀的表
     * @param schema 数据库名
     * @param tablePrefix 表前缀
     * @return 数据库中以包含指定前缀的数据库
     */
    @DS("test")
    @Select("select table_name from tables where table_schema = #{schema} AND table_name like '${tablePrefix}%'")
    List<String> selectListTable(@Param("schema") String schema, @Param("tablePrefix") String tablePrefix);

    /**
     * 获取指定数据库schema中所有以tablePrefix作为前缀的表的个数
     * @param schema 数据库名
     * @param tablePrefix 表前缀
     * @return
     */
    @DS("master")
    @Select("select count(table_name) from tables where table_schema = #{schema} AND table_name like '${tablePrefix}%'")
    int countTable(@Param("schema") String schema, @Param("tablePrefix") String tablePrefix);

    /**
     * 清空指定表
     * @param table 表名
     */
    @DS("master")
    @Delete("delete from ${table} where 1 = 1")
    void clearTable(@Param("table") String table);
}
